/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package logicaNegocio;

import dtos.DTOPedido;
import java.util.ArrayList;
import java.util.List;
import presentacion.IUConfirmarPedido;

/**
 *
 * @author Sebastian
 */
public class SuscriptorNotificacion {

    private static SuscriptorNotificacion instancia;
    private List<ObservadorNotificacion> observadores;

    private SuscriptorNotificacion() {
    }

    public static synchronized SuscriptorNotificacion getInstancia() {
        if (instancia == null) {
            instancia = new SuscriptorNotificacion();
        }
        return instancia;
    }

    private List<ObservadorNotificacion> getObservadores() {
        if (observadores == null) {
            observadores = new ArrayList<ObservadorNotificacion>();
        }
        return observadores;
    }

    public void agregarObservador(ObservadorNotificacion observador) {
        getObservadores().add(observador);
    }

    public void quitarObservador(ObservadorNotificacion observador) {
        getObservadores().remove(observador);
    }

    public void notificar(int idControlador, String mensaje) {
        for (ObservadorNotificacion observador : observadores) {
//            if (observador.getId() == idControlador) {
                observador.notificar(idControlador, mensaje);
//            }
        }
    }

    public void notificar(int idControlador, DTOPedido dTOPedido) {
//        for (int i = 0; i < observadores.size(); i++) {
            new IUConfirmarPedido(dTOPedido, idControlador);         
//        }
    }
}
